// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "Engine/DataAsset.h"
#include "LyraExperienceActionSet.generated.h"

class UGameFeatureAction;

/**
 * 定义在进入经验时执行的一组操作
 */
UCLASS(BlueprintType, NotBlueprintable)
class ULyraExperienceActionSet : public UPrimaryDataAsset
{
	GENERATED_BODY()

public:
	ULyraExperienceActionSet(); // 构造函数

	//~UObject接口
#if WITH_EDITOR
	virtual EDataValidationResult IsDataValid(class FDataValidationContext& Context) const override; // 数据验证
#endif
	//~End of UObject接口

	//~UPrimaryDataAsset接口
#if WITH_EDITORONLY_DATA
	virtual void UpdateAssetBundleData() override; // 更新资源包数据
#endif
	//~End of UPrimaryDataAsset接口

public:
	// 在经验加载/激活/停用/卸载时执行的操作列表
	UPROPERTY(EditAnywhere, Instanced, Category="Actions to Perform")
	TArray<TObjectPtr<UGameFeatureAction>> Actions; // 游戏特性操作列表

	// 此经验想要激活的游戏特性插件列表
	UPROPERTY(EditAnywhere, Category="Feature Dependencies")
	TArray<FString> GameFeaturesToEnable; // 要启用的游戏特性列表
};